Computers have been used for many years to do image and graphics generation. In recent years computer generated graphics have become more sophisticated and the power of computer equipment has increased. Similarly, users' expectations of computer graphics have also increased. Computer users have come to expect more realism in computer graphics which generally means that there are more objects, and more light and texture processing on those objects.
Complex images and scenes are mathematically modeled in a three-dimensional space in the computer memory and manipulated accordingly. These three-dimensional mathematical models are called wire frames because all the edges of the object are visible at the same time when displayed. Three-dimensional models are made to look more realistic by removing the edges which should be hidden and by applying color and shading to the visible surfaces of the model. Texture also improves a simple polygon model by adding opacity and color variations.
In order to provide a better understanding of computer graphics architecture, a generalized computer graphics system will now be discussed. In FIG. 1, a host processor 20 is provided to process a display model or database. The host processor is connected to a geometry subsystem 22, which transforms object coordinate polygon data to the world coordinate system. The geometry system can also take care of lighting, viewing transformation and mapping to screen coordinates. The rasterization subsystem 24 converts transformed primitives to pixels and subpixels. Rasterization includes scan conversion, visible-surface determination and shading. Each pixel and/or subpixel is typically assigned an X and Y coordinate, a RGBA (i.e., Red, Green, Blue, Alpha) color value and a Z-value. The pixels are stored in a frame buffer 26 and then output to a display 28.
One element of a computer graphics system that is particularly relevant to the present discussion is the geometry subsystem. This is where the world model is processed and the transformation of the model will take place. Typically, the world model that is supplied to the geometry subsystem is fixed at run-time and the entire database that represents the scene geometry is compiled in advance. Up to this point in time, models or databases have only practically been modifiable at compile time and any insertion to the system model has been a compile time operation that involves reconstructing the model. This process is time consuming and can take anywhere from an hour up to several hours.
An example of a computer graphics application that has used compiled modeling techniques is high performance vehicle simulation. Such a simulation system may often include a cab that is a vehicle mock-up containing a crew compartment with vehicle instruments and controls. The cab can be mounted on a motion base to provide motion and acceleration cues by moving the cab. The motion base is coupled to a visual system, which provides out-the-window imagery and environmental data for the crew, host, or both.
A software system called the host oversees the operation of the simulator. The host monitors the control inputs provided by the crew, and causes the cockpit dials, instruments and displays to reflect the ongoing simulation status. In addition, the host controls the motion base and related audio systems, and tells the visual system what it needs to know to draw the corresponding out-the-window scene. A real-time system is a software program within the visual system that controls the image generator in response to host inputs.
The host tells the real-time system about object positions in the simulated environ ment (e.g., own aircraft, traffic aircraft, ground traffic, storms, etc.), the status of switchable or selectable items (e.g., runway and environmental lights, runway contamination, etc.), and position of global environmental effects like illumination (e.g., day, dusk, night) and visibility (e.g., fog, rain, snow, etc.). The real-time system returns data such as the nature of the surface beneath the tires of the aircraft, and whether collisions have occurred between the aircraft and other traffic or storm cells. This communication is largely asynchronous which means it occurs randomly as needed and is not locked to the ongoing computation of regular image frames. A simulation system can also contain many different types of scene elements such as terrain, aerials or tree canopies, linear features (roads, hedgerows, fences), and point features (trees, power poles, houses, light points). Other models can be included in the system such as moving models of airplanes, cars, and helicopters, or environmental models such as clouds, sky, storms, or lightning flashes, etc.
The real-time system gets the required scene data from disk storage and loads it into the appropriate parts of the image generator in an on-going background process called paging. It also sends commands to the image generator to implement lighting, environ mental, and other special effects called for by the host. The real-time system determines the proper level-of-detail (LOD) for scene elements and prepares them for rendering after eliminating elements that will not appear in the scene. This process includes the translations and rotations needed to get scene elements into their proper position within the scene. In other words, the real-time system controls the geometry engine and provides the input needed to allow the scene to be viewed and transformed. Further, the real-time system also manages the rendering portion of the image generator in a synchronous, lock-step fashion that guarantees a steady stream of video to the displays.